# 不将整数转为字符串 判断一个整数是否是回文数。回文数是指正序（从左向右）和倒序（从右向左）读都是一样的整数。
#
# 输入: 121
# 输出: true
#
# 输入: -121
# 输出: false

# 输入: 10
# 输出: false
# https://leetcode-cn.com/problems/palindrome-number

# 强行转字符串再反转对比的效果
# 执行用时 : 104 ms , 在所有 Python3 提交中击败了17.61%的用户
# 内存消耗 : 13.5 MB , 在所有 Python3 提交中击败了 28.96% 的用户

# 优化思路
# 还可以排除掉所有负数 直接返回False startswith(),用[0]取试试
# 执行用时 : 112 ms , 在所有 Python3 提交中击败了 13.14% 的用户
# 内存消耗 : 13.4 MB , 在所有 Python3 提交中击败了 28.96% 的用户
# 好像也没什么卵用...


# 官方题解用的是C# 反转一半的思路get到了 算法没看懂...
# python写法大概是这亚子

x = 112
if x < 0 or (x % 10 == 0 and x != 0):
    print(False)
reversed_num = 0
while (x > reversed_num):
    reversed_num = reversed_num * 10 + x % 10
    x = x // 10
print(x == reversed_num or x == reversed_num)

